import json
import random

# 定义颜色列表
color_palette = ['#4EABC0', '#90795D', '#306F88', '#89AFB1', '#97A678',
                 '#ABA264', '#D5C095', '#89AFB1', '#D9EAD7', '#B5CFA3',
                 '#DEDDCB', '#F8DACC', '#94B267']

# 加载JSON数据
with open('data/graph_response_template.json', 'r', encoding='utf-8') as f:
    data = json.load(f)

# 设置随机种子以确保结果一致性
random.seed(0)

# 修改vertexSet中的颜色
for vertex_id, vertex_data in data['vertexSet'].items():
    if vertex_data['label'] == '自然人':
        # 如果是自然人，颜色改为"#FE9900"
        vertex_data['color'] = "#FE9900"
    else:
        # 其他顶点随机选择颜色
        vertex_data['color'] = random.choice(color_palette)

# 修改edgeSet中的虚线
certain_relations = ('拥有', '使用', '日间常驻', '夜间常驻', '归属', '位于')
for edge_id, edge_data in data['edgeSet'].items():
    if edge_data['label'] in certain_relations:
        # 如果是确定关系，使用实线
        edge_data['dashed'] = 0
        edge_data['color'] = ""
    else:
        # 其他关系使用虚线
        edge_data['dashed'] = 1
        edge_data['color'] = ""

# 保存修改后的JSON数据
with open('data/graph_response_template_color_modified.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

print("颜色修改完成！")